package com.itlong.cloud.enumerate;

import lombok.Getter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      抄表费类型枚举类.
 * </desc>
 *
 * @createDate 2018-08-14
 */
public enum MeterInfoTypeEnum {

    WATERRATE("电费",1),
    POWERRATE("水费",2),
    GASBILL("燃气费",3);

    @Getter
    private Integer type;  //抄表费类型

    @Getter
    private String description;  //抄表费类型描述（名称）


    /**
     * <desc>
     * 构造函数.
     * </desc>
     *
     * @param type        物业账单缴费类型
     * @param description 物业账单缴费类型描述（名称）
     * @author Qiang.S
     * @createDate 2018-08-14
     */
    MeterInfoTypeEnum(String description, Integer type) {
        this.description = description;
        this.type = type;
    }


    /**
     * <desc>
     * 根据物业账单缴费类型获取描述（名称）.
     * </desc>
     *
     * @param type 物业账单缴费类型
     * @return 物业账单缴费类型描述（名称）
     * @author Qiang.S
     * @createDate 2018-08-14
     */
    public static String getDescription(int type) {
        MeterInfoTypeEnum[] types = MeterInfoTypeEnum.values();
        for (MeterInfoTypeEnum limitCategory : types) {
            if (limitCategory.getType() == type) {
                return limitCategory.getDescription();
            }
        }
        return "";
    }


    /**
     * <p>
     *     枚举的type
     * <p/>
     *
     * @return {@link java.util.List}。
     */
    public static List<Integer> toList() {
        List<Integer> values = new ArrayList<>();
        MeterInfoTypeEnum[] ds = MeterInfoTypeEnum.values();
        for (MeterInfoTypeEnum one : ds) {
            values.add(one.getType());
        }
        return values;
    }
}
